package com.luoc;

import com.luoc.service.ChessMan;
import com.luoc.service.MementoCaretaker;

/**
 * @Author: luoc
 * @Date: 2019/10/11 11:19
 * 备忘录模式(Memento Pattern)：在不破坏封装的前提下，捕获一个对象的内部状态，
 * 并在该对象之外保存这个状态，这样可以在以后将对象恢复到原先保存的状态。它是一种对象行为型模式，其别名为Token。
 */
public class MementoPattern {

    public static void main(String[] args) {
        ChessMan chessMan = new ChessMan("go",1,1);
        System.out.println(chessMan.toString());
        MementoCaretaker mementoCaretaker = new MementoCaretaker();
        // 保存备忘录
        mementoCaretaker.setManMemento(chessMan.save());
        chessMan.chage(2,3);
        System.out.println(chessMan.toString());
        // 回车备忘录
        chessMan.resore(mementoCaretaker.getManMemento());
        System.out.println(chessMan.toString());

    }
}
